Computer programs have different workload requirements based on their functionality. Workload pertains to an amount of work performed by a computing device or system to perform given functions. Example workload requirements include memory workload, central processing unit (CPU) workload, input-output (I/O) workload, and database workload, just to provide a few. Memory workload relates to an amount of memory required to perform an instruction over a period of time or at a specific instant in time. CPU workload relates to a number of instructions required to be executed during a given period or at a particular instant in time. I/O workload relates to combinations of received input and produced output required to be analyzed at a given time to ensure that appropriate load parameters are met. Database workload relates to an amount of a database utilized for performing instructions over a given time or at a specific time.
Because of varying workload requirements, computing devices may have insufficient processing capabilities to support certain computer programs. For example, the computing device's CPU may not have sufficient processing power for a computer program. Likewise, the computing device's storage unit may not have sufficient power for the computer program.
Moreover, it may not be clear whether a computer program, when launched, is able to support their processing requirements. Thus, computing devices may be deployed with insufficient processing power to support key computer programs.
Field Programmable Gate Arrays (FPGAs) are semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. FPGAs can be reprogrammed to the desired application or functionality requirements after manufacturing.
Modules can be implemented on FPGAs with specialized hardware designed to perform particular functions efficiently. Example FPGA modules utilize fast fourier transform (FFT), neural networks, and/or image processing. In this way, FPGAs permit a customer or a designer to specify a hardware design for specific processing requirements. Prior systems are unable to identify a proper FPGA module for different computer programs. As a result, even if computing devices are deployed with sufficient processing power to support key computer programs, the deployed FPGA module may be insufficient.
In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifiers the drawing in which the reference number first appears.